#pragma once
#include "item.h"
#include "obj.h"

struct Container {
  uint32 num_slots();
  uint32 item_id();
  uintptr ptr();
  ObjType type();
  uint32 index();
  uint64 id1();
  uint64 id2();
  // --- Constructors ---
  Container(uint64 base, uint64 ptr, std::shared_ptr<ItemCache> cache);
  Container() = delete;
  Container(Container &&) = default;
  Container(const Container &) = default;
  Container &operator=(Container &&) = default;
  Container &operator=(const Container &) = default;
  ~Container();

private:
  Item item_;
  uint32 num_slots_; // 背包容量
};
